package com.satan.juc.demo24;

import java.util.concurrent.atomic.AtomicBoolean;

public class AtomicBooleanExample {
    public static void main(String[] args) {
        // 创建一个新的AtomicBoolean，默认初始值为false
        AtomicBoolean atomicBoolean = new AtomicBoolean(false);

        // 获取当前值
        boolean currentValue = atomicBoolean.get();

        // 设置给定值
        atomicBoolean.set(true);

        // 如果当前值等于预期值，则以原子方式将该值设置为给定的更新值
        boolean wasUpdated = atomicBoolean.compareAndSet(true, false);

        // 获取当前值，并设置新的值
        boolean oldValue = atomicBoolean.getAndSet(true);

        // 以原子方式逻辑地设置当前值为true，并返回前一个值
        boolean previousValue = atomicBoolean.getAndSet(true);

        // 以原子方式逻辑地设置当前值为false，并返回前一个值
        atomicBoolean.set(false);
    }
}
